extends Resource

class_name 武器资源

@export_group("武器基本")
##武器的具体名称。
@export var 武器名称 :String
##武器的模型与动画场景。
@export var 武器模型绑定:PackedScene
##武器处于那种分类。
@export_enum("手枪","步枪","冲锋枪","霰弹枪","狙击枪","火箭筒") var 武器类型: String
##武器特性是武器播放射击动画的表现形式，如果是蓄力则只有松开射击键时武器才会发射，如果是充能则只有武器充能完成后才可连续发射
@export_enum("无","蓄力","充能","单发装填") var 武器特性:String = "无"
##武器瞄具的类型,全屏瞄具类似于狙击枪.
@export_enum("无","全屏瞄具") var 武器瞄具类型:String ="无"

@export_group("武器属性")
##启用该选项后，武器将在射击延迟结束后自动进入下一次射击。
@export var 全自动:bool
##武器伤害是指武器单个弹片的伤害。
@export var 武器伤害 : int = 5
##武器射速是指当前武器一次射击需要多长时间，单位是秒。
@export var 武器射速 : float = 0.2
##弹片数量是指一次射击到底发射多少颗子弹.
@export var 弹片数量 : int = 1
##武器弹容量是指武器一个弹匣的容量。
@export var 武器弹容量 : int = 12
##每次射击消耗,指的是每次射击时会消耗的弹药数量。
@export var 每次射击消耗 : int = 1
##武器射弹速度指的是如果该武器是投射类子弹行驶的话，子弹的飞行速度。
@export var 武器射弹速度:int = 200
##武器射弹方案,指的是武器射弹的表现形式，如激光的高频次的射线，检测或普通武器的射线检测或投射型武器发射的投射物等等形态。
@export var 武器射弹方案:PackedScene
##武器射弹本体是指如果武器有投射物的话，投射物场景本身。
@export var 武器射弹本体:PackedScene


@export_group("武器扩散与后座")
@export var 武器最小扩散 :float
##武器扩散是指武器最大的扩散范围。
@export var 武器最大扩散 : float
##武器射程非常复杂，准确来讲它是武器射线最远能对焦到的距离,超越该距离后，武器无法伤害或瞄准敌人。
@export var 武器射程 : int = 2000
##武器操控性，该数值为百分比，可以同时影响后坐力，开镜速度，拿起与放下的速度，瞄准惩罚与补偿。
@export_range(0.0,1.0) var 武器操作性: float = 0.5
##武器回正延迟是指武器射击后生成的扩散与后坐力消失的速度，数值越高，速度越快。
@export_range(0.01,0.5) var 武器回正延迟: float = 0.5
##当前武器瞄具的最大缩放倍率。
@export_range(1.0,12.0) var 武器缩放倍率 : float

@export_group("射击后座动效属性")
##后座的幅度.
@export var 后座距离幅度:float
##测试
@export var x轴运动曲线:Curve

@export var y轴运动曲线:Curve

@export var z轴运动曲线:Curve

@export_group("其他词条")
##特殊武器或初始武器不可丢弃的属性.
@export var 初始武器_不可丢弃:bool
##当武器丢下后所放下的武器场景。
@export var 武器掉落物 :PackedScene



var 当前武器弹容量 : int = 武器弹容量
var 当前武器扩散 : Vector2 = Vector2.ZERO
